package main

import (
	"bufio"
	"fmt"
	"io"
	"os"
)

func main() {
	// 这里介绍bufio这个包
	file1, err := os.Open("./test")
	b1 := bufio.NewReader(file1) //创建bufio下的Newrader对象

	if err != nil {

	}
	defer file1.Close()
	// bufio.NewReadWriter(file)
	// for {
	// 	str, err := b1.ReadString('\n') // 这里需要传入字节类型
	// 	if err == io.EOF {
	// 		fmt.Println(str) //防止文件最后一行无换行符
	// 		fmt.Println("文件读取完毕!!!")
	// 		break
	// 	}
	// 	fmt.Println(str)
	// }
	//下面学习readbytes方法
	bs, err := b1.ReadBytes('\n')
	// fmt.Println(bs)
	fmt.Println(string(bs)) // 与string一致

	//下面编写缓冲区写入  bufio.write
	file2, err := os.OpenFile("./test1", os.O_CREATE|os.O_WRONLY, 0644)
	fmt.Println(err)
	defer file2.Close()
	file2.Seek(0, io.SeekEnd)
	w2 := bufio.NewWriter(file2)   //newwrite默认大小为4096
	w2.WriteString("helloworld\n") //缓冲区存放内容
	w2.Flush()                     // 刷新缓冲区 会把缓冲区的内容写入到文件中
	//ps: 如果缓冲区间超上限,会自动往文件中发送内容
	// file3 := os
	dir, err := os.ReadDir("./")
	fmt.Println(err)
	for _, dir := range dir {

		fmt.Println(dir)
	}
	//循环练习中
	// for q := 1; q < 100; q++ {
	// 	fmt.Print(q)
	// }
	// 第二种循环
	// for _, v := range v {

	// }
}

// 初始化函数
func init() {
// data := new()
}
